﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Sale_Ords
{
    public partial class FormSlOrdsUpd : Form
    {
        int idx1, idx2, idx3; // объявление переменных для установки индекса
        BrokerSlOrds b_SlOrds = new BrokerSlOrds(); // объявление BrokerSlOrds
        public FormSlOrdsUpd()
        {
            InitializeComponent();
        }

        private void SlOrds_Upd_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        {
            FClose(); // вызов функции закрытия формы
        }

        private void FormSlOrdsUpd_FormClosed(object sender, FormClosedEventArgs e) // закрытие формы
        {
            FClose(); // вызов функции закрытия формы
        }

        private void SlOrds_Upd_sBt_Upd_Click(object sender, EventArgs e) // при нажатии кнопки "Сохранить"
        {
            try
            {
                Dm_Orders NewOrds = new Dm_Orders(); // объявление Dm_Orders как NewOrds
                Dm_Orders OldOrds = new Dm_Orders(); // объявление Dm_Orders как OldOrds
                Dm_Pers prsS = new Dm_Pers(); // объявление Dm_Pers
                Dm_Pers prsL = new Dm_Pers(); // объявление Dm_Pers
                Dm_Type tp = new Dm_Type(); // объявление Dm_Type

                OldOrds.Id_ords = Convert.ToInt32(label8.Text); // присвоение значений OldOrds.Id_ords из label8.Text

                prsS = SlOrds_Upd_cBE_Prs.SelectedItem as Dm_Pers; // присвоение prs значений из SlOrds_Upd_cBE_Prs
                tp = SlOrds_Upd_cBE_Tp.SelectedItem as Dm_Type; // присвоение tp значений из SlOrds_Upd_cBE_Tp
                prsL = SlOrds_Upd_cBE_PrsLog.SelectedItem as Dm_Pers;

                NewOrds.Customer = SlOrds_Upd_tE_Ctmr.Text; // присвоение NewOrds.Customer значений из SlOrds_Upd_tE_Ctmr.Text
                NewOrds.Vendor = SlOrds_Upd_tE_Vdr.Text; // присвоение NewOrds.Vendor значений из SlOrds_Upd_tE_Vdr.Text
                NewOrds.Date = Convert.ToDateTime(SlOrds_Upd_dE_Dt.Text);
                NewOrds.Date_contr = Convert.ToDateTime(SlOrds_Upd_dE_DtCnt.Text); // присвоение значений NewOrds.Date_contr из SlOrds_Upd_dE_DtCnt.Text

                b_SlOrds.Update(OldOrds, NewOrds, prsS, prsL, tp); // вызов функции на редактирование записи

                MessNotif.Informing("Запись успешно отредактирована.", "Запись отредактирована"); // информирование о редактирование записи 

                FClose(); // вызов функции закрытия формы
            }

            catch (Exception ex) // если не добавилось
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void FClose() // функция закрытия
        {
            SlOrds_Upd_cBE_Prs.Properties.Items.Clear(); // отчистка SlOrds_Upd_cBE_Prs
            SlOrds_Upd_cBE_Tp.Properties.Items.Clear(); // отчистка SlOrds_Upd_cBE_Tp
            SlOrds_Upd_cBE_PrsLog.Properties.Items.Clear(); // отчистка SlOrds_Upd_cBE_Tp
            SlOrds_Upd_dE_Dt.Text = "";
            SlOrds_Upd_tE_Ctmr.Text = "";
            SlOrds_Upd_tE_Vdr.Text = "";
            SlOrds_Upd_dE_DtCnt.Text = "";
            this.Hide();
        }

        private void FormSlOrdsUpd_Load(object sender, EventArgs e) // заполнение ComboBox при открытие формы
        {
            SlOrds_Upd_cBE_Prs.Properties.Items.AddRange(b_SlOrds.FillComboBoxPers()); // заполнение FillComboBoxPers
            SlOrds_Upd_cBE_Tp.Properties.Items.AddRange(b_SlOrds.FillComboBoxType()); // заполнение FillComboBoxType
            SlOrds_Upd_cBE_PrsLog.Properties.Items.AddRange(b_SlOrds.FillComboBoxPersLog());

            int mg = Dm_User.Id_pers; // объявление переменной и присвоение ей значения из Dlv_Upd_cBE_Mg.Text

            for (int i = 0; i < SlOrds_Upd_cBE_Prs.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = SlOrds_Upd_cBE_Prs.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_SlOrds.idxPers(mg)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx1 = i; // присваивание idx значения нужного индекса
                }
            }

            SlOrds_Upd_cBE_Prs.SelectedIndex = idx1; // установка индекса

            mg = Convert.ToInt32(SlOrds_Upd_cBE_Tp.Text); // объявление переменной и присвоение ей значения из SlOrds_Upd_cBE_Tp.Text

            for (int i = 0; i < SlOrds_Upd_cBE_Tp.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = SlOrds_Upd_cBE_Tp.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_SlOrds.idxType(mg)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx2 = i; // присваивание idx значения нужного индекса
                }
            }

            SlOrds_Upd_cBE_Tp.SelectedIndex = idx2; // установка индекса


            mg = Convert.ToInt32(SlOrds_Upd_cBE_PrsLog.Text); // объявление переменной и присвоение ей значения из SlOrds_Upd_cBE_Tp.Text

            for (int i = 0; i < SlOrds_Upd_cBE_PrsLog.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = SlOrds_Upd_cBE_PrsLog.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_SlOrds.idxPers(mg)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx3 = i; // присваивание idx значения нужного индекса
                }
            }

            SlOrds_Upd_cBE_PrsLog.SelectedIndex = idx3; // установка индекса

            SlOrds_Upd_dE_DtCnt.Properties.MinValue = SlOrds_Upd_dE_Dt.DateTime.AddDays(1);
        }

        private void fullfill()
        {
            if (SlOrds_Upd_dE_DtCnt.Text != "" & SlOrds_Upd_tE_Ctmr.Text != "" & SlOrds_Upd_cBE_Prs.SelectedItem != null & SlOrds_Upd_cBE_Tp.SelectedItem != null & SlOrds_Upd_cBE_PrsLog.SelectedItem != null & SlOrds_Upd_tE_Vdr.Text != "")
            {
                SlOrds_Upd_sBt_Upd.Enabled = true;
            }
            else
                SlOrds_Upd_sBt_Upd.Enabled = false;
        }

        private void FormSlOrdsUpd_MouseEnter(object sender, EventArgs e)
        {
            fullfill();
        }

    }
}
